/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DataAccessObject;

import BusinessEntity.BE_EstadoRequerimiento;
import Comun.Conexion;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author richard.saldana
 */
public class DA_EstadoRequerimiento {
    
    Conexion con;
    ResultSet rs;
    CallableStatement declaracion;

    private static DA_EstadoRequerimiento pinstancia=null;

    public static DA_EstadoRequerimiento obtenerInstancia()
    {
      if (pinstancia==null)
      {
          pinstancia=new DA_EstadoRequerimiento();
      }
      return pinstancia;
    }
    
    public BE_EstadoRequerimiento obtenerEstadoRequerimiento(int intIdEstadoRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{

        con = Conexion.ObtenerInstancia();
        BE_EstadoRequerimiento objBEEstadoRequerimiento = new BE_EstadoRequerimiento();                

        try {
            con.IniciarConexion();
            String strProcedure = "{call obtenerEstadoRequerimiento(?) }";
            declaracion = con.preparaLlamada(strProcedure);
            declaracion.setInt(1, intIdEstadoRequerimiento);
            declaracion.execute();
            rs = declaracion.getResultSet();   
            ArrayList<BE_EstadoRequerimiento> aobjBEstadoRequerimiento = new ArrayList<BE_EstadoRequerimiento>();
            BE_EstadoRequerimiento objBEEstadoReqRespuesta = new BE_EstadoRequerimiento();
            while(rs.next()){
                objBEEstadoReqRespuesta.setIdEstado(rs.getInt("idEstado"));
                objBEEstadoReqRespuesta.setStrNombre(rs.getString("nombre"));
                aobjBEstadoRequerimiento.add(objBEEstadoReqRespuesta);
            }

            objBEEstadoRequerimiento = aobjBEstadoRequerimiento.get(0);
        } catch (SQLException exception) {
            System.out.println("error: " + exception.getMessage());
            exception.printStackTrace();
        } finally {
            
            con.CerrarConexion();
      
        }
        
        return objBEEstadoRequerimiento;
      
}

         public ArrayList<BE_EstadoRequerimiento> obtenerEstados() throws InstantiationException, IllegalAccessException, SQLException{

        con = Conexion.ObtenerInstancia();
        ArrayList<BE_EstadoRequerimiento> aobjBE_EstadoRequerimientos = new ArrayList<BE_EstadoRequerimiento>();

        try {
            con.IniciarConexion();
            String strProcedure = "{call obtenerEstadosRequerimiento() }";
            declaracion = con.preparaLlamada(strProcedure);
            declaracion.execute();
            rs = declaracion.getResultSet();   
            
            while(rs.next()){
                BE_EstadoRequerimiento objBE_EstadoRequerimiento = new BE_EstadoRequerimiento();
                objBE_EstadoRequerimiento.setIdEstado(rs.getInt("codigo"));
                objBE_EstadoRequerimiento.setStrNombre(rs.getString("nombre"));
                aobjBE_EstadoRequerimientos.add(objBE_EstadoRequerimiento);
                
            }

   
        } catch (SQLException exception) {
            System.out.println("error: " + exception.getMessage());
            exception.printStackTrace();
        } finally {
            
            con.CerrarConexion();
 
            
        }
        
        return aobjBE_EstadoRequerimientos;
      
}
    
}
